package pers.cj.pdos.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import pers.cj.pdos.entity.BorrowInBackGoods;
import pers.cj.pdos.entity.MoneyWater;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author chenj
 * @since 2020-03-25
 */
public interface MoneyWaterMapper extends BaseMapper<MoneyWater> {
    List<Map> listVo(@Param("companyId") String companyId,
                     @Param("page") Integer page,
                     @Param("limit") Integer limit,
                     @Param("close") Boolean close,
                     @Param("search") String search,
                     @Param("no") String no,
                     @Param("unitName") String unitName,
                     @Param("userStoreId") String userStoreId,
                     @Param("userId") String userId,
                     @Param("settAccountId") String settAccountId,
                     @Param("type") Integer type,
                     @Param("typeProject") Integer typeProject,
                     @Param("date1")Date date1,
                     @Param("date2")Date date2,
                     @Param("storeId") String storeId);

    Long count(@Param("companyId") String companyId,
               @Param("close") Boolean close,
               @Param("search") String search,
               @Param("no") String no,
               @Param("unitName") String unitName,
               @Param("userStoreId") String userStoreId,
               @Param("userId") String userId,
               @Param("settAccountId") String settAccountId,
               @Param("type") Integer type,
               @Param("typeProject") Integer typeProject,
               @Param("date1")Date date1,
               @Param("date2")Date date2,
               @Param("storeId") String storeId);

    BigDecimal getTotalAmount(@Param("companyId") String companyId,
                              @Param("storeId") String storeId,
                              @Param("userStoreId") String userStoreId,
                              @Param("userId") String userId,
                              @Param("date1")Date date1,
                              @Param("date2")Date date2);

    List<Map> listTotalGroupByDate(@Param("companyId") String companyId,
                                   @Param("storeId") String storeId,
                                   @Param("userStoreId") String userStoreId,
                                   @Param("userId") String userId,
                                   @Param("date1")Date date1,
                                   @Param("date2")Date date2);
}
